home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 14 / Commodore_Free_Issue_14_2007_Commodore_Computer_Club.d64 / t.iv mcdougall < prev    next >
Text File  |  2023-02-26  |  15KB  |  495 lines

  1. u
  2. Interview with Mark McDougall
  3. Mark C= FPGA 1541 project
  4.  http://members.iinet.net.au/{$de}msmcdoug/
  5.  
  6. Q - Can you introduce yourself to our
  7. reader?
  8.  
  9. A - My name is Mark McDougall & live in
  10. Sydney, Australia. I'm an electronics
  11. design/computer software engineer who
  12. was 1st bitten by the arcade emulation
  13. bug around 1990. It has since snow-
  14. balled into a full-blown hobby & now
  15. encompasses classic 8-bit micro
  16. computers & consoles as well as video
  17. arcade machines.
  18.  
  19. Away from computers, these days I try
  20. to keep fit by playing soccer pretty
  21. much year-round sorry, _football_
  22. (actually even us Aussies are dropping
  23. "soccer" in favour of "football") &
  24. going to the gym. And I'm definitely
  25. *not* a morning person! ;)
  26.  
  27. Q - What was your first Computing
  28. experience? 
  29.  
  30. A - Somewhere in my 1st year of high
  31. school, when I was 13, my father
  32. purchased a 4K Level 1 TRS-80 Model I
  33. for himself. Or so he thought. I still
  34. recall that first day loading a version
  35. of Backgammon off cassette tape, &
  36. typing in BASIC listings from the user
  37. manuals. To this day I swear I spent
  38. more hours playing "Flying Saucers" &
  39. "Time Trek" than any computer or
  40. console game ever since!
  41.  
  42. Q - When did you come across the brand
  43. name commodore?
  44.  
  45. A - The C64 wasn't so big here in
  46. Australia - or at least in the circles
  47. I moved, so it wasn't until I saw an
  48. Amiga 1000 at a computer show that I
  49. really took much notice of the C=
  50. brand. By the time I had saved enough
  51. to buy a C=, the 500 had been released,
  52. so that was the first C= that I owned.
  53. Of course I still own it!
  54.  
  55. Q - Many people outside C= ask why
  56. bother writing & creating software for
  57. out of date machines would you like to
  58. comment.
  59.  
  60. A - For me it's primarily a nostalgia
  61. thing. I recall those TRS-80 days very
  62. fondly, & I guess part of me gets to
  63. relive those days whenever I'm working
  64. with or playing on the old machines. I
  65. also find that my attention span has
  66. shortened appreciably over the years, &
  67. as impressed as I am with some of the
  68. modern games, I find they require too
  69. much of my already limited spare time &
  70. concentration to get into them
  71. properly.
  72.  
  73. So the arcade games & classic computer
  74. games are more appealing to me - you
  75. can pick up a controller & start
  76. blasting away & (in my case at least)
  77. it's "GAME OVER" a few minutes later.
  78. And of course as every retro enthusiast
  79. will tell you, it was always about
  80. gameplay back then!
  81.  
  82. It's also a joy to discover software, &
  83. machines, that I didn't get to
  84. experience all those years ago. The C64
  85. is a prime example - until a few months
  86. ago I had quite literally never played
  87. one - & having read some 30+ issues of
  88. "RetroGamer" magazine, games like Lode
  89. Runner & Wizball were the 1st disk
  90. images I tracked down when we decided
  91. to develop the 1541 emulation.
  92.  
  93. If you never experienced those
  94. days personally, I get that you
  95. don't get it! However I am
  96. surprised that some of the retro
  97. enthusiasts popping up over
  98. usenet etc these days are
  99. actually too young to have been
  100. there - it's good to see!
  101.  
  102. Q - Can you tell our readers about your
  103. FPGA 1541 project?
  104.  
  105. A - The FPGA 1541 project is an
  106. offshoot from our "PACE" project,
  107. which has grown in scope to
  108. encompass pretty much anything
  109. related to the emulation &/or
  110. enhancement of classic arcade
  111. machines, microcomputers &
  112. consoles.
  113.  
  114. The idea of the FPGA 1541 project
  115. is to emulate the 1541 faithfully
  116. in hardware, rather than provide
  117. a device that connects to a C64
  118. and appears to behave like a 1541
  119. drive, but doesn't actually
  120. operate internally like a 1541.
  121. So inside an FPGA, we emulate the
  122. 6502 & 6522s so it runs the
  123. original DOS ROM code. We can
  124. then emulate the physical drive
  125. mechanism in whatever manner we
  126. choose - Compact Flash, SD/MMC
  127. card, etc - to create a device
  128. that can be physically attached
  129. to a real C64 & operate exactly
  130. like a 1541 but with a lot more
  131. storage than a single floppy disk.
  132.  
  133. We (my co-conspirator Chris & I) did
  134. know of various similar projects that
  135. emulated floppy disk storage devices on
  136. the C64, but none - as we understood
  137. that directly emulated the hardware of
  138. a 1541. Aside from just being fun, we
  139. thought it more likely that we'd be
  140. able to provide a device more
  141. compatible with fastloaders etc if we
  142. did it this way. We also wanted a
  143. single solution that we could connect
  144. to either a real C64 or to say,
  145. FPGA64, inside the same chip.
  146.  
  147. Q - on your website you state
  148. "13-Aug-2007 The 1541 emulation is now
  149. reading the G64 image off Compact
  150. Flash" how far is there to go with the
  151. project?
  152.  
  153. We have an operational (read only) 1541
  154. running on various FPGA development
  155. boards that operates with both Compact
  156. Flash & SD card. At the moment the
  157. emulation is partly implemented
  158. within a 'soft-core' processor
  159. within the FPGA, something we are
  160. working at replacing so that the
  161. hardware required is much simpler &
  162. much cheaper - & hopefully bringing it
  163. into the budget of more enthusiasts.
  164.  
  165. Q - Will you be trying to emulate other
  166. drives, such as the 1581?
  167.  
  168. A - Most probably. If I understand
  169. correctly, there's no real leap in
  170. technology involved & we will be able
  171. to base the higher capacity drives off
  172. the 1541 emulation with moderate effort
  173.  
  174. Q - Will your emulation be able to cope
  175. with software fastloaders & protection
  176. schemes?
  177.  
  178. A - Well that was a big point of the
  179. project. We initially started with D64
  180. images, & generated G64 images
  181. on-the-fly within the FPGA with code
  182. lifted straight from MESS. As it stands
  183. now, the emulation makes use of G64
  184. images, albeit support is preliminary.
  185.  
  186. Although the complications of
  187. protection schemes present their own
  188. challenge - not only to the emulation
  189. itself but also their encapsulation in
  190. the representative disk format like
  191. G64 - the emulation should be more
  192. faithful than other efforts & hopefully
  193. more compatible with fast loaders for
  194. example.
  195.  
  196. Q - Will there be a finished product to
  197. purchase or are you just designing the
  198. software?
  199.  
  200. A - No final decision has been made,
  201. but the thinking at this point is to
  202. release the complete design for a read-
  203. only version in the public domain, &
  204. provide a commercial hardware product
  205. that supports both reading & writing.
  206.  
  207. Q. How easy will it be to transfer
  208. images to/from the device?
  209.  
  210. A - That is something we're
  211. divided on at the moment. Ideally
  212. the user could insert an SD card
  213. in a PC & simply transfer
  214. D64/G64 disk images to the card.
  215. That complicates the design &
  216. adds cost to a product. The other
  217. end of the spectrum is to provide
  218. proprietary software to write
  219. disk images to the SD card in a
  220. custom format. And USB is also a
  221. popular option these days...
  222.  
  223. Q - Maybe this is a dumb question but
  224. How can the software be used & what can
  225. it be used on?
  226.  
  227. A - The user would be able to LOAD as
  228. many D64/G64 images as the SD card can
  229. hold, & then plug the card into an
  230. emulated 1541 that can be connected to
  231. a real C64. There would be some user-
  232. interface that would allow the user to
  233. select which disk image is active, &
  234. obviously from that point on, the C64
  235. sees that disk in the drive. It may
  236. also be possible to have the same
  237. device emulate a number of floppy
  238. drives simultaneously - but that could
  239. affect the final cost.
  240.  
  241. Not knowing much about the C64 family,
  242. I'm assuming it would be compatible (or
  243. trivial to support compatibility) with
  244. the various C= machines that supported
  245. the 1541 & similar drives.
  246.  
  247. Q - Would you be able to link the PACE
  248. up to a real C64 to act as a virtual
  249. drive?
  250.  
  251. A - Definitely, as explained above - &
  252. is something we have already done!
  253.  
  254. Q - Does the software work on the C-One
  255. for example?
  256.  
  257. A - Whilst not intimately familiar with
  258. the C-1, it is my understanding that
  259. the C-1 architecture isn't quite
  260. suitable for our project. The main FPGA
  261. on the C-1 is completely full with
  262. FPGA64 & the secondary FPGA is (IIUC) a
  263. closed design that handles I/O & video
  264. as well as bootstrapping the machine.
  265. I'd be happy to be proven wrong on that
  266. though.
  267.  
  268. Having said that, we have ported
  269. Peter's FPGA64 project to our own FPGA
  270. H/W & integrated our 1541 so that we
  271. have our own version of 'C= on-a-chip'.
  272.  
  273. Q - Will the finished results be
  274. available to download & will there be a
  275. charge?
  276.  
  277. As I said earlier, I'd like to release
  278. something back into the public domain -
  279. a read-only design for example.
  280.  
  281. Q - What do you think of the other
  282. advanced storage methods for the C64,
  283. like the IDE64 interface or the MMC64
  284. (which allows access to SD/MMC cards)?
  285.  
  286. A - To be honest, I don't know a great
  287. deal about them, but from what I've
  288. gleaned from reading about them, I
  289. think they're great products in their
  290. own right. Some also go beyond
  291. emulating storage devices as well,
  292. which is a plus.
  293.  
  294. I guess the main difference is that the
  295. heart of the 1541 project is the aim to
  296. faithfully emulate the architecture so
  297. that it runs the standard DOS ROMs.
  298.  
  299. The upshot is that the design can also
  300. be combined with FPGA64 inside a single
  301. FPGA to give a single-chip solution.
  302.  
  303. Q - What does the project aim to do, I
  304. notice you have links & references to
  305. other C= FPGA projects are you working
  306. together on a project?
  307.  
  308. A - Part of the problem with PACE is
  309. that the scope is ever-expanding as my
  310. interests in retro computers broadens.
  311. So it's a very difficult question to
  312. answer. And as technology advances it
  313. becomes easier & cheaper to implement
  314. things that were prohibitive only a few
  315. years ago - add this to the mix & it's
  316. very difficult to decide which aspect
  317. of PACE to devote the time to.
  318.  
  319. I've justified my aforementioned short
  320. attention span by proclaiming that PACE
  321. is currently in the proof-of-concept
  322. or 'prototype' phase. What this really
  323. means is that I do enough to get a
  324. particular emulation more-or-less
  325. running, & can then move on to other
  326. more interesting things without the
  327. tedious tying-up of loose ends or
  328. worrying about 101% compatibility.;)
  329.  
  330. More often than not immediate ideas are
  331. spawned from FPGA projects released by
  332. other authors, or even discussions on
  333. the usenet newsgroups & mailing lists
  334. that I frequent. For instance right now
  335. we're waiting on prototype PCBs to come
  336. back from fabrication that I designed
  337. a few weeks ago to implement flash-
  338. based multi-carts on the TRS-80 Coco
  339. (a.k.a. Dragon 32) originally spawned
  340. from a discussion on the Coco mailing
  341. list about a small run of custom
  342. EPROM-based carts.
  343.  
  344. The aim of the PACE project I
  345. guess is to be to hardware what
  346. MAME/MESS is to software. It'd be
  347. great if ultimately people could
  348. contribute to the project adding
  349. not only new emulations, but
  350. support for other FPGA hardware
  351. like development kits. We're trying to
  352. create a VHDL framework that speeds the
  353. development of new emulations. Of
  354. course we're *far* from achieving that
  355. & just as MAME/MESS have done, there
  356. will be regular re-architecting along
  357. the way before it's even half right!
  358.  
  359. What we'd also _like_ to do,
  360. ultimately, is to produce an
  361. FPGA-based hardware platform that
  362. is most suitable for the hardware
  363. emulation of as wide a range as
  364. possible of classic arcade,
  365. console & microcomputer
  366. platforms. The same hardware
  367. could be plugged into a VGA
  368. monitor & PS/2 keyboard, TV &
  369. console game controller (we've
  370. already done Gamecube & Maple
  371. Bus (Dreamcast) interfaces), or
  372. directly into a JAMMA arcade
  373. cabinet. Not unlike the C-1 but
  374. (with the benefit of hindsight
  375. and advancing technology) more
  376. flexible.
  377.  
  378. Q - Can you tell our reader about some
  379. of the other projects referenced on
  380. your website?
  381.  
  382. A - A few years ago, my colleague
  383. Chris Nott & I spun our first
  384. board for our PUCE (Programmable
  385. Universal Cartridge Emulator)
  386. which comprised three cartridge
  387. connectors - NES, SNES & N64 
  388. connected to an FPGA. The idea
  389. was to produce a flash-based
  390. programmable cartridge that
  391. allowed the user to transfer
  392. cartridge images from any of
  393. these 3 consoles onto the card
  394. together with the mapper logic
  395. so one could play *any* game on
  396. the respective console.
  397.  
  398. We did have some success along
  399. the way, most notably on the SNES
  400. and N64, but ultimately due to
  401. our inexperience the card was
  402. simply too cumbersome to develop
  403. for & (ironically) not quite
  404. viable to emulate a NES cartridge.
  405.  
  406. Then we discovered that emulating
  407. complete arcade machines & 8 bit
  408. microcomputers in FPGAs was
  409. considerably more fun than
  410. emulating just the cartridges &
  411. PACE (Programmable Arcade Circuit
  412. Emulator) was born. To be fair we
  413. lucked into some suitable
  414. hardware for free & PUCE was
  415. all-but-forgotten. Just the other
  416. day, however, we did talk about
  417. resurrecting the project, albeit
  418. on new hardware.
  419.  
  420. The other cool project I was
  421. quite proud of was my "Space
  422. Invaders TRS-80 Bootleg" project,
  423. which involved patching the
  424. original Space Invaders ROM to
  425. run on a TRS-80 Model 4P with
  426. suitable hires hardware. It
  427. involved reverse-engineering
  428. pretty much every single
  429. instruction in the Space Invaders
  430. ROM code, which took a few weeks,
  431. and then another few weeks of
  432. developing the patches. I got it
  433. running on my real Model 4P 
  434. despite the fact I had no working
  435. disk drives - albeit at 50% - due
  436. only to the fact that there isn't
  437. a suitable 60Hz interrupt on the
  438. 4P. Still cool IMHO...
  439.  
  440. In closing: The two most frustrating
  441. things for me are the lack of time to
  442. devote to my hobby, & the fact that my
  443. hobby now encompasses such a broad
  444. range of platforms! Hardware
  445. development is not only costly, but
  446. also time-consuming, & there's so many
  447. projects I'd like to tackle that are
  448. simply out of the question for me for
  449. the foreseeable future.
  450.  
  451. I'd love to be able to make a
  452. living out of it, but I'm yet to
  453. identify a segment of the market
  454. that I believe is viable to
  455. sustaining a steady income. So
  456. for now, I do what interests &
  457. challenges me, &/or projects
  458. that may be of some interest to
  459. at least a few others.
  460.  
  461. Perhaps of specific to your readers, of
  462. late I've become more aware of
  463. peripherals like the REU & Ethernet
  464. cards for the C64, & am interested in
  465. perusing designs for these. Another off
  466. shoot is interfacing modern controllers
  467. to old computers & consoles - I've
  468. played Wizball on FPGA64 with a
  469. Nintendo Wavebird, for example!
  470.  
  471. In the past I baulked at the effort in
  472. producing PCBs but after recently
  473. completing a few prototypes for the
  474. Coco (flash carts) & Amiga (PS/2 mouse
  475. adapter), I'm starting to think that it
  476. makes more sense to produce a greater
  477. variety of relatively simple boards
  478. whilst PACE "matures". I think one
  479. advantage both Chris & I have is that
  480. we have both a broad range of interests
  481. across the spectrum of retro gaming &,
  482. though our work, a rather broad range
  483. of skills to match - so with enough
  484. different boards even a trickle of
  485. sales of each may be enough to fund
  486. development of more designs.
  487.  
  488. And thanks Nigel for taking interest in
  489. my obsession! ;)
  490.  
  491. Regards,
  492.  
  493. Picture of Loadrunner Running from FPGA
  494.  
  495.